import { Toast } from 'vant'
class Order{
    //订单实例
    static IsRequire=7
    constructor(order_num,order_date,post_man,start_point,end_point,state,way_bill){
       this.order_num=order_num
       this.order_date=order_date
       this.post_man=post_man
       this.start_point=start_point
       this.end_point=end_point
       this.state=state
       this.way_bill=way_bill
       this._do({order_num,order_date,post_man,start_point,end_point,state,way_bill})
    }
    _do(orderInfo){
        return orderInfo
    }
}

class AddressInfo {
    /**
     * 对添加地址类 建模 
     */

     /**
      * 以_开头 代表 私有属性
      */
    static IsRequire=4
    constructor(name,phone,city,address,location,mark){
         /**
     * 添加 地址
     * name  姓名（必填）
     * phone 电话（必填）
     * city  城市 （必填）
     * address 地址 （必填）
     * loaction 位置 （非必须）
     * mark 另外说明 （非必填） 
     */  
    this.name=name
    this.phone=phone
    this.city=city
    this.address=address     
    this.loaction=location
    this.mark=mark  
    this._do({name,phone,city,address,location,mark})
    }
    //添加 或 修改
    _do(address){   
      return address     
    }     
}

class PurchaseSpec{
    /**
     * 购买规格 
     * 1.pickUp_time   打包时间
     * 2.product_type 物品类型
     * 3 payer 支付方
     */
    static IsRequire=3
    constructor(pickUp_time,product_type,payer){
       this.pickUp_time=pickUp_time
       this.product_type=product_type
       this.payer=payer  
       this._do({pickUp_time,product_type,payer})
    }
    _do(purchaseSpec){    
        return  purchaseSpec
    } 
}

export function qualified(data){
    if(data == null || data ==""||data == undefined ){
        return false
    }else{
        return true
    }
}

//将接口 数据转换成 前端 所需要的数据
export function transformList(list,{needItem}){
    /**
     * 只获取 需要的数据
     */
    let arrayList=[]     
    list.forEach((item)=>{ 
    const {needItem}=item
    arrayList.push( {needItem})
    }) 
    return arrayList
}

/**
 * key 校验 
 * data 构造函数 参数
 * class_type 对象 类
 */
export function validata(data,class_type){
        let set= Object.entries(data).slice(0,class_type.IsRequire)
        let ret= set.find((value,index)=>{
            return !qualified( value[1])
        })
        if( ret == undefined){  
            //符合要求     
            return  true 
        }else{
           Toast.fail(ret[0] +" is Null");
            return false   
        }   
         /**
     * 将对象 转换成 集合
     * https://www.cnblogs.com/wcnwcn/p/11475707.html
     */
        // let set= Object.entries(addressInfo).slice(0,4)
        /**
         * https://www.cnblogs.com/00feixi/p/11346902.html
         * 找到满足条件的第一个元素返回，如果未找到，则返回undefined。
         * Array.find()：找到满足条件的第一个元素返回，如果未找到，则返回undefined。
           Array.findIndex()：找到满足条件的第一个元素，返回其位置，如果未找到，则返回-1。
         */
}


export {Order,AddressInfo,PurchaseSpec}